

import java.awt.*;
import java.awt.image.ImageObserver;
import java.awt.image.ImageProducer;

/**
 * 工具类
 * 存放静态参数
 */
public class GameUtil {
    static int MAX_W_array[]={11,16,21};
    static int MAX_H_array[]={11,14,16};
    static int bomb_MAX_array[]={7,15,45};
    //宽
    static int MAX_W=11;
    //高
    static int MAX_H=11;
    //雷区偏移量
    static int OFFSET=45;
    //格子边长
    static int SQUARE_LENGTH=50;
    static int width=2*GameUtil.OFFSET+GameUtil.SQUARE_LENGTH*GameUtil.MAX_W;
    static int height=4*GameUtil.OFFSET+GameUtil.SQUARE_LENGTH*GameUtil.MAX_H;
    //雷的数量
    static int bomb_MAX=20;
    //-1表示雷，0表示空，1-8表示雷数
    static int MAP_BOTTOM[][]=new int[MAX_W+30][MAX_H+30];
    //0表示开，1表示未开，2表示插旗
    static int MAP_TOP[][]=new int[MAX_W+30][MAX_H+30];
    //鼠标坐标
    static int MOUSE_X;
    static int MOUSE_Y;
    //状态
    static boolean LEFT=false;
    static boolean RIGHT=false;
    //状态，0表示游戏中，1表示胜利，2表示失败
    static int state=0;
    //旗子数
    static int SUM=0;
    //表格图
    static int mp[][]=new int[MAX_W+30][MAX_H+30];
    //开始结束时间
    static long START_TIME=0;
    static long END_TIME=0;
    //难度，-1表示选择页面,0-2表示难度
    static int difficulty=-1;
    //重置参数
    static boolean INIT=false;

    static int change_W(int x){
        return OFFSET+x*SQUARE_LENGTH;
    }
    static int change_H(int y){
        return OFFSET*3+y*SQUARE_LENGTH;
    }
    static int MAP_W(int x){return x>GameUtil.OFFSET?(x-OFFSET)/SQUARE_LENGTH:-1; }
    static int MAP_H(int y){ return y>GameUtil.OFFSET*3?(y-OFFSET*3)/SQUARE_LENGTH:-1; }

    static boolean sure(int x,int y){return 0<=x && x<GameUtil.MAX_W && 0<=y && y<=GameUtil.MAX_H;}
    //判断是否在一个矩形中
    static boolean query(int l,int r,int lower,int u,int x,int y){ return l<=x && x<=r && lower<=y && y<=u;}

    //炸弹图
    static Image lei= Toolkit.getDefaultToolkit().getImage("imgs/炸弹.png");
    //数字图
    static Image[] images=new Image[10];
    static {
//        for(int i=1;i<10;i++) images[i]=Toolkit.getDefaultToolkit().getImage("imgs/number/"+i+".png");
        for(int i=1;i<10;i++) images[i]=Toolkit.getDefaultToolkit().getImage("imgs/兔子.png");
    }
    //遮板
    static Image top=Toolkit.getDefaultToolkit().getImage("imgs/遮板.png");
    //旗子
    static Image flag=Toolkit.getDefaultToolkit().getImage("imgs/旗帜.png");
    //笑脸图
    static Image head[]=new Image[3];
    static {
        for(int i=0;i<3;i++) head[i]=Toolkit.getDefaultToolkit().getImage("imgs/头像/"+i+".png");
    }
    //难度
    static Image menu[]=new Image[4];
    static {
        menu[0]=Toolkit.getDefaultToolkit().getImage("imgs/menu/简单.png");
        menu[1]=Toolkit.getDefaultToolkit().getImage("imgs/menu/普通.png");
        menu[2]=Toolkit.getDefaultToolkit().getImage("imgs/menu/困难.png");
        menu[3]=Toolkit.getDefaultToolkit().getImage("imgs/menu/难度.png");
    }
    //背景
    static Image background=Toolkit.getDefaultToolkit().getImage("imgs/background.png");
    //打印字符串
    static void drawWord(Graphics g,String str,int x,int y,Color color,int Size){
        g.setColor(color);
        g.setFont(new Font("仿宋",Font.BOLD,Size));
        g.drawString(str,x,y);
    }

    //胜利次数
    static int numbei=0;
}